/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package CapaDatos;

import java.sql.ResultSet;
import java.util.LinkedList;

/**
 *
 * @author BlackEmpires
 */
public class Detalle_DAO implements DAO {

    private String sentenciaSQL;
    ConexionDB conexion;
    LinkedList<Detalle_POJO> listaDetalle = new LinkedList<Detalle_POJO>();
    ResultSet resultado;
    int valor = -1;

    public Detalle_DAO() {

        conexion = new ConexionDB();
    }

    @Override
    public LinkedList<Detalle_POJO> obtenerReg(int id) {

        sentenciaSQL = "SELECT * FROM detalle WHERE idDetalle=" + id;

        try {
            conexion.abrirConexion();
            resultado = conexion.getResultSet(sentenciaSQL);

            if (resultado.next()) {
                Detalle_POJO objDetalle = new Detalle_POJO();
                objDetalle.setCantidad(Integer.parseInt(resultado.getString("cantidad")));
                objDetalle.setDescuento(Double.parseDouble(resultado.getString("descuento")));
                objDetalle.setIdArticulo(Integer.parseInt(resultado.getString("idArticulo")));
                objDetalle.setIdDetalle(Integer.parseInt(resultado.getString("idDetalle")));
                objDetalle.setIdPedido(Integer.parseInt(resultado.getString("idPedido")));

                listaDetalle.add(objDetalle);
                //System.out.println("Resultado "+resultado.getString("descuento")); 
            }

        } catch (Exception ex) {
            System.out.println("error " + ex);
            return null;
        }
        conexion.cerrarConexion();
        return listaDetalle;
    }

    public int guardarReg(int pCantidad, Double pDescuento, int pIdPedido, int pIdArticulo) {

        //Tipos de datos en la BD  idDetalle int , cantidad int, descuento float4, idPedido int ,idArticulo int 
        sentenciaSQL = "INSERT INTO detalle(cantidad,descuento,idPedido,idArticulo) VALUES ("
                + pCantidad + "," + pDescuento + "," + pIdPedido + "," + pIdArticulo + ")";

        //System.out.println("INSERT "+sentenciaSQL);
        try {
            conexion.abrirConexion();
            valor = conexion.executeQuery(sentenciaSQL);
            //System.out.println ("Insert exitoso");


        } catch (Exception ex) {
            System.out.println("error " + ex);
            valor = -1;
        }
        conexion.cerrarConexion();
        return valor;

    }

    public int actualizarReg(int pIdDetalle, int pCantidad, Double pDescuento, int pIdPedido, int pIdArticulo) {

        sentenciaSQL = "UPDATE detalle SET cantidad = " + pCantidad + ",descuento = "
                + pDescuento + ",idPedido =" + pIdPedido + ",idArticulo=" + pIdArticulo
                + " WHERE idDetalle = " + pIdDetalle;

        //System.out.println(sentenciaSQL);
        try {
            conexion.abrirConexion();
            valor = conexion.executeQuery(sentenciaSQL);
            //System.out.println ("Insert exitoso");

        } catch (Exception ex) {
            System.out.println("error " + ex);
            valor = -1;
        }
        conexion.cerrarConexion();
        return valor;
    }

    @Override
    public int eliminarReg(int id) {

        sentenciaSQL = "DELETE FROM detalle WHERE idDetalle=" + id;

        try {
            conexion.abrirConexion();
            valor = conexion.executeQuery(sentenciaSQL);

        } catch (Exception ex) {
            System.out.println("error " + ex);
            valor = -1;

        }
        conexion.cerrarConexion();
        return valor;
    }
}
